package com.pro.service;

import com.pro.pojo.JsClosure;
import com.pro.pojo.JsDept;
import com.pro.pojo.JsUnseal;
import com.pro.pojo.JsUser;

import java.util.List;

/**
 * ClassName:JsDeptService
 * Package:com.pro.service
 * Description: 后台部门Service
 *
 * @Date:2022/1/19 下午 9:01
 * @Author: WYH
 */
public interface JsDeptService {

    /**
     * @Author WYH
     * @Description //TODO 查看部门名称
     * @Date 下午 9:00 2022/1/19
     * @Param
     * @return List<JsDept>
     **/
    List<JsDept> getJsDeptName();

    /**
     * @Author WYH
     * @Description //TODO 查询后台用户信息
     * @Date 下午 9:18 2022/1/19
     * @Param account,trueName.deptName,registerDate,limit,page
     * @return  List<JsUser>
     **/
    List<JsUser> getJsUser(String account, String trueName, String deptName,String registerDate, Integer limit, Integer page);

    /**
     * @Author WYH
     * @Description //TODO 计算后台用户信息
     * @Date 下午 9:18 2022/1/19
     * @Param account,trueName.deptName,registerDate
     * @return  Integer
     **/
    Integer countJsUser(String account, String trueName, String deptName, String registerDate);

    /**
     * @Author WYH
     * @Description //TODO 更新账号状态
     * @Date 下午 7:20 2022/1/20
     * @Param jsUser
     * @return  false | true
     **/
    Boolean updateStatus(JsUser jsUser);
    /**
     * @Author WYH
     * @Description //TODO 将解封后的账号添加到解封日志中
     * @Date 下午 2:55 2022/2/9
     * @Param userId,type,unsealDate
     * @return false | true
     **/
    Boolean insertUnseal(Integer userId,Integer type,String unsealDate);
    /**
     * @Author WYH
     * @Description //TODO 解封后封停日志封停结束时间改为当前的时间
     * @Date 下午 3:01 2022/2/9
     * @Param id,userId,endDate
     * @return false | true
     **/
    Boolean updateUserEndDate(Integer id,Integer userId,String endDate);

    /**
     * @Author WYH
     * @Description //TODO 查询用户详情
     * @Date 下午 7:33 2022/1/20
     * @Param userId
     * @return  JsUser
     **/
    JsUser getJsUserById(Integer userId);

    /**
     * @Author WYH
     * @Description //TODO 高级检索
     * @Date 下午 8:37 2022/1/21
     * @Param email,phone,idCard,status,sex,enabled,limit,page
     * @return  List<JsUser>
     **/
    List<JsUser> getSearchJsUser(String email,String phone,String idCard,String status,String sex,String enabled,Integer limit,Integer page);

    /**
     * @Author WYH
     * @Description //TODO 计算高级检索的个数
     * @Date 下午 8:37 2022/1/21
     * @Param  email,phone,idCard,status,sex,enabled
     * @return integer
     **/
    Integer countSearchJsUser(String email,String phone,String idCard, String status,String sex,String enabled);

    /**
     * @Author WYH
     * @Description //TODO 权限
     * @Date 下午 8:57 2022/1/21
     * @Param userId
     * @return  List<JsUser>
     **/
    List<JsUser> getUserSettings(Integer userId);

    /**
     * @Author WYH
     * @Description //TODO 添加后台人员
     * @Date 下午 8:51 2022/1/27
     * @Param jsUser
     * @return  true | false
     **/
    Boolean addBackgroundUser(JsUser jsUser);
    /**
     * @Author WYH
     * @Description //TODO 添加后台权限
     * @Date 下午 8:51 2022/1/24
     * @Param jsUser
     * @return  true | false
     **/
    Boolean addUserStatus(List<JsUser> jsUser);

    /**
     * @Author WYH
     * @Description //TODO 删除后台权限
     * @Date 下午 8:51 2022/1/24
     * @Param userId
     * @return  true | false
     **/
    Boolean delUserStatus(Integer userId);

    /**
     * @Author WYH
     * @Description //TODO 对后台用户账户进行编辑
     * @Date 下午 9:36 2022/1/24
     * @Param userId
     * @return JsDept
     **/
    Boolean updateUser(JsUser jsUser);

    /**
     * @Author WYH
     * @Description //TODO 封停
     * @Date 下午 6:11 2022/1/25
     * @Param jsClosure
     * @return  true | false
     **/
    Boolean addUserClosure(JsClosure jsClosure);

    /**
     * @Author WYH
     * @Description //TODO 更改后台用户账号状态
     * @Date 下午 6:16 2022/1/25
     * @Param userId,status,enabled
     * @return  true | false
     **/
    Boolean updateUserStatus(Integer userId,Integer status,Integer enabled);

    /**
     * @Author WYH
     * @Description //TODO 后台人员解封日志
     * @Date 下午 9:07 2022/2/7
     * @Param account,deptName,unsealDate,limit,page
     * @return  List<JsUnseal>
     **/
    List<JsUnseal> getPeopleUnsealing(String account, String deptName, String unsealDate, Integer limit, Integer page);

    /**
     * @Author WYH
     * @Description //TODO 计算后台人员解封日志个数
     * @Date 下午 9:13 2022/2/7
     * @Param account,deptName,unsealDate
     * @return  Integer
     **/
    Integer countGetPeopleUnsealing(String account, String deptName, String unsealDate);


}
